package m.app.action.fun;

import m.app.action.AppAction;
import m.base.util.PowerUtil;
import m.common.action.ActionMeta;
import m.common.action.RequestMeta;
import m.common.model.type.FieldType;
import m.common.model.util.ModelQueryList;
import m.common.model.util.QueryCondition;
import m.common.model.util.QueryOrder;
import m.fun.model.AskDetail;
import m.fun.model.AskInfo;
import m.system.document.DocumentMeta;
import m.system.document.DocumentMethodMeta;
import m.system.document.DocumentParamMeta;
import m.system.exception.MException;
import m.system.util.JSONMessage;

import java.sql.SQLException;

@ActionMeta(name = "app/fun/askInfo",title = "app询价记录")
public class AskInfoAction extends AppAction {
    @DocumentMeta(
        method = @DocumentMethodMeta(title = "询价记录列表",permission = true),
        params = {
            @DocumentParamMeta(name = "page.index",description = "分页开始位置",type = FieldType.INT),
            @DocumentParamMeta(name = "page.num",description = "分页每页数量",type = FieldType.INT),
            @DocumentParamMeta(name = "params[oid@eq]",description = "条件示例，字段和操作符中间用@，值为空不添加",type = FieldType.STRING,length = 50),
            @DocumentParamMeta(name = "params[oid#desc]",description = "排序示例，字段和操作符中间用#，值为空不生效",type = FieldType.STRING,length = 50)
        }
    )
    public JSONMessage myList() throws Exception {
        ModelQueryList queryList=toQueryList(AskInfo.class,"*","sale.*","guest.*");
        queryList.addCondition(QueryCondition.eq("user.oid",PowerUtil.getSessionUserOid()));
        queryList.addOrder(QueryOrder.desc("submitDate"));
        return JSONMessage.success("查询成功").push("page",ModelQueryList.getModelPageInfo(queryList));
    }
    @RequestMeta(params = {"oid"})
    public JSONMessage getDetails(String oid) throws SQLException, MException {
        return JSONMessage.success("查询成功")
            .push("list",
                ModelQueryList.getModelList(AskDetail.class,new String[]{"*","goods.*","record.*"},null,
                    QueryCondition.eq("ask.oid",oid))
            );
    }
}
